
//
// 121118 - AH - Created.
//

package org.japril.jutil.sol;

import java.util.List;

/**
 * <p>
 *   Interface for objects that loads objects.
 * </p>
 * @author Arne Halvorsen (AH)
 */
public interface Sol
{
  /**
   * <p>
   *   Gets names on categories objects are divided into.
   * </p>
   * @return Names.
   */
  List<String> getCategoryNames();
  
  /**
   * <p>
   *   Gets loaded classes of a given type.
   * </p>
   * @param cat   Category objects to get are in.
   * @param clazz Type of objects to get.
   * @return Objects.
   */
  <T> List<T> getLoaded(String cat, Class<? extends T> clazz);
  
}
